تالار های تخصصی

ساخت وبلاگ
زمانی که یکی از مجوزهای system “ANY” privilege نظیر select any table، drop any table و … را به کاربری می دهیم، آن کاربر امکان دسترسی به objectهای شمای sys و جداول Data Dictionary را ندارد: SQL*Plus: Release 10.1.0.4.2 - Production on Tue Jan 9 10:38:31 2024 SQL> show user USER is "SYS" SQL> create table sys.tb as select * from dual; Table created. SQL> create user usef identified by a; User created. SQL> grant create session,select any table to usef; Grant succeeded. SQL> conn usef/a Connected. SQL> select * from sys.tb; ORA-00942: table or view does not exist SQL> select * from v$datafile; ORA-00942: table or view does not exist اگر تصمیم داریم این محدودیت را حداقل در مورد مجوز select any table برای یک کاربر برداریم، می توانیم مجوز SELECT ANY DICTIONARY را به آن کاربر اعطا کنیم: SQL> grant SELECT ANY DICTIONARY to usef; Grant succeeded. SQL> conn usef/a Connected. SQL> select * from sys.tb; D - X SQL> select file# from v$datafile where rownum=1; FILE# ---------- 1 البته از اوراکل 12c، دسترسی به بعضی از جداول Data Dictionary حتی با داشتن مجوز  SELECT ANY DICTIONARY  هم امکان پذیر نیست. لیست بعضی از این جداول را در قسمت زیر می بینید: USER$, ENC$ , DEFAULT_PWD$, LINK$, USER_HISTORY$, CDB_LOCAL_ADMINAUTH$, XS$VERIFIERS نقش SELECT_CATALOG_ROLE هم می تواند دسترسی به ویوهای دیتادیکشنری را به کاربر اعطا کند که قبلا در مورد تفاوت این نقش با مجوز SELECT ANY DICTIONARY مطلبی را نوشته ایم. شکل پیشرفته تر از مجوز SELECT ANY DI تالار های تخصصی...
ما را در سایت تالار های تخصصی دنبال می کنید

برچسب : نویسنده : خنجی niksaleh بازدید : 21 تاريخ : دوشنبه 2 بهمن 1402 ساعت: 13:15

Hybrid Partitioned Table قابلیت جدیدی است که اوراکل در نسخه 19c ارائه کرده است با کمک این قابلیت می توان برای یک جدول، تلفیقی از پارتیشنهای exteal و inteal را ایجاد کرد. این روش از پارتیشن بندی، صرفا متدهای Range و List را پشتیبانی می کند البته در نسخه 19c امکان استفاده از متد Automatic List برای Hybrid Partitioned Table وجود ندارد و این امکان از نسخه 23c به وجود آمد. بنابرین از این نسخه(23c) می توانیم برای جداول Hybrid Partitioned Table از قابلیت Automatic List Partitioning استفاده کنیم. قبل از ایجاد جدول مورد نظر، دایرکتوری مربوط به دیتایی که در سیستم عامل قرار دارند را ایجاد می کنیم: SQL> create directory E_PARTITIONs as '/PARTITIONs'; Directory created جدول mytbl از نوع هیبریدی است و  به روش Automatic List پارتیشن بندی شده است: SQL> CREATE TABLE mytbl 2 ( 3 national_id NUMBER, 4 name VARCHAR2(20), 5 last_name VARCHAR2(20), 6 org_id NUMBER 7 ) 8 EXTERNAL PARTITION ATTRIBUTES( 9 TYPE ORACLE_LOADER 10 DEFAULT DIRECTORY E_PARTITIONs 11 ACCESS PARAMETERS 12 ( 13 FIELDS TERMINATED BY ',' (national_id,name,last_name,org_id) 14 ) 15 REJECT LIMIT UNLIMITED 16 ) 17 PARTITION BY LIST (org_id) AUTOMATIC 18 ( 19 PARTITION p1 VALUES (1), 20 PARTITION p2 VALUES (2), 21 PARTITION p_exteal VALUES (3) EXTERNAL LOCATION('part1.txt') 22 ); Table created در صورت فعال نبودن قابلیت Automatic List Partitioning، ستون org_id صرفا مقادیر 1، 2 و 3 را قبول می کرد اما تالار های تخصصی...
ما را در سایت تالار های تخصصی دنبال می کنید

برچسب : نویسنده : خنجی niksaleh بازدید : 23 تاريخ : دوشنبه 2 بهمن 1402 ساعت: 13:15

خبرنامه